package com.jdy.haoduoaiteacher.view;//package com.jdy.haoduoaiteacher.view;
//
//import android.content.Context;
//import android.content.res.Resources;
//import android.graphics.Canvas;
//import android.graphics.Paint;
//import android.graphics.Paint.Align;
//import android.graphics.Rect;
//import android.graphics.Typeface;
//import android.graphics.drawable.Drawable;
//import android.util.AttributeSet;
//import android.widget.SeekBar;
//
//import com.jdy.haoduoaiteacher.R;
//import com.jdy.haoduoaiteacher.util.Tools;
//
///**
// * Support start and end indicator in certain range!
// * 
// * Fix bug: -- initial position of thumb drawable may not coordinate with start
// * and end indicator,solve it by using a copy of the thumb drawable.
// * 
// * @author zp @ 2015-9-7 下午4:37:11
// */
//public class PageSeekBar extends SeekBar {
//
//  private static final int textMargin = 6;
//  private static final int leftPlusRightTextMargins = textMargin + textMargin;
//
//  protected String mCurrentPage;
//
//  protected String mFirstPage;
//
//  protected String mLastPage;
//
//  protected Paint textPaint;
//
//  private final int maxTextSize = 35;
//
//  private final int minTextSize = 10;
//
//  private final String sampleText = "test";
//
//  private float ratio = 1;
//
//  public PageSeekBar(Context context) {
//    super(context, null, 0);
//    ratio = Tools.getPixelRatio(context);
//  }
//
//  public PageSeekBar(Context context, AttributeSet attrs) {
//    super(context, attrs, 0);
//    ratio = Tools.getPixelRatio(context);
//  }
//
//  public PageSeekBar(Context context, AttributeSet attrs, int defStyle) {
//    super(context, attrs, defStyle);
//    ratio = Tools.getPixelRatio(context);
//    Resources resources = getResources();
//    initTextPaint();
//  }
//
//  private void initTextPaint() {
//    // Set up drawn text attributes here
//    textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//    textPaint.setColor(0xFF48C4C6);
//    textPaint.setTypeface(Typeface.DEFAULT);
//    textPaint.setTextAlign(Align.LEFT);
//    setLeftMostText();
//  }
//
//  // This attempts to ensure that the text fits inside your SeekBar on a resize
//  @Override
//  protected void onSizeChanged(int w, int h, int oldw, int oldh) {
//    super.onSizeChanged(w, h, oldw, oldh);
//    if (textPaint == null)
//      initTextPaint();
//    setFontSmallEnoughToFit(w - leftPlusRightTextMargins);
//  }
//
//  // Finds the largest text size that will fit
//  protected void setFontSmallEnoughToFit(int width) {
//    int textSize = (int) (maxTextSize * ratio);
//    textPaint.setTextSize(textSize);
//    while ((textPaint.measureText(sampleText) > width)
//        && (textSize > minTextSize)) {
//      textSize--;
//      textPaint.setTextSize(textSize);
//    }
//  }
//
//  // Clients use this to change the displayed text
//  public void setOverlayText(String text) {
//    this.mCurrentPage = text;
//    invalidate();
//  }
//
//  public void setLeftMostText() {
//    this.mFirstPage = String.valueOf(1);
//    this.mLastPage = String.valueOf(1);
//  }
//
//  public void setRightMostText(int max) {
//    this.mLastPage = String.valueOf(max + 1);
//  }
//
//  @Override
//  public void setMax(int i) {
//    super.setMax(i);
//    setRightMostText(i);
//  }
//
//  @Override
//  public void setProgress(int i) {
//    super.setProgress(i);
//    mCurrentPage = String.valueOf(i + 1);
//  }
//
//  Drawable mThumb;
//  Drawable mThumbCopy;
//  Drawable mTerminalThumb;
//
//  @Override
//  public void setThumb(Drawable thumb) {
//    super.setThumb(thumb);
//    mThumb = thumb;
//    mTerminalThumb = getResources().getDrawable(R.drawable.book_terminal_thumb);
//    mThumbCopy = getResources().getDrawable(
//        R.drawable.custom_thumb_state_default);
//    postInvalidate();
//  }
//
//  public Drawable getSeekBarThumb() {
//    return mThumb;
//  }
//
//  /**
//   * !!!Should Have to make a copy this particular thumb drawable,or the
//   * {@link getBounds} and {@link setBounds} would be tangled in {@link OnDraw}
//   * method of which may cause the incorrect position of drawable in initial
//   * state.
//   * 
//   * @return
//   */
//  public Drawable getSeekBarThumbCopy() {
//    return mThumbCopy;
//  }
//
//  public Drawable getTerminalThumb() {
//    return mTerminalThumb;
//  }
//
//  // Draws the text onto the SeekBar
//  @Override
//  protected void onDraw(Canvas canvas) {
//    // Draw everything else (i.e., the usual SeekBar) first
//    super.onDraw(canvas);
//
//    float x = 0, y = 0;
//
//    int height = this.getHeight();
//
//    int textHeight = (int) (Math.abs(textPaint.ascent()) + textPaint.descent() + 1);
//
//    int textWidth = (int) textPaint.measureText(mCurrentPage);
//
//    y = height - textHeight / 2;
//
//    canvas.save();
//
//    Drawable b = getTerminalThumb();
//
//    int terminalThumbWidth = this.getSeekBarThumb().getBounds().width();
//
//    int terminalThumbHeight = this.getSeekBarThumb().getBounds().height();
//
//    int terminalThumbLeft = getLeft() - getThumbOffset();
//
//    int terminalThumbTop = this.getTop();
//
//    b.setBounds(terminalThumbLeft + terminalThumbWidth / 2, terminalThumbTop
//        - terminalThumbHeight / 2, terminalThumbLeft + terminalThumbWidth * 3
//        / 2, terminalThumbTop + terminalThumbHeight / 2);
//
//    int firstPageTextWidth = (int) textPaint.measureText(mFirstPage);
//
//    int firstPageIndicatorX = (int) (b.getBounds().exactCenterX() - firstPageTextWidth / 2);
//
//    b.draw(canvas);
//
//    textPaint.setColor(0xFFA1A1A1);
//
//    canvas.drawText(mFirstPage, firstPageIndicatorX, y, textPaint);
//
//    b.setBounds(
//        this.getWidth() - 3 * terminalThumbWidth / 2 + getThumbOffset(),
//        terminalThumbTop - terminalThumbHeight / 2, this.getWidth()
//            - terminalThumbWidth / 2 + getThumbOffset(), terminalThumbTop
//            + terminalThumbHeight / 2);
//
//    int lastPageTextWidth = (int) textPaint.measureText(mLastPage);
//
//    int lastPageIndicatorX = (int) b.getBounds().exactCenterX()
//        - lastPageTextWidth / 2;
//
//    b.draw(canvas);
//
//    canvas.drawText(mLastPage, lastPageIndicatorX, y, textPaint);
//
//    canvas.restore();
//
//    canvas.save();
//
//    Drawable progressThumb = getSeekBarThumb();
//
//    Drawable progressThumbCopy = getSeekBarThumbCopy();
//
//    Rect bounds = progressThumb.copyBounds();
//
//    x = (int) bounds.exactCenterX() + textWidth / 2;
//
//    int width = bounds.width();
//
//    progressThumbCopy.setBounds(bounds.left + width / 2 - getThumbOffset(),
//        bounds.top, bounds.right + width / 2 - getThumbOffset(), bounds.bottom);
//
//    progressThumbCopy.draw(canvas);
//
//    textPaint.setColor(0xFF48C4C6);
//
//    canvas.drawText(mCurrentPage, x, y, textPaint);
//
//    canvas.restore();
//
//  }
// }